package com.sp.method;

/**
 * 守护线程
 *
 * 1. 用户线程: 也叫工作线程, 当线程的任务执行完成或通知方式结束
 * 2. 守护线程: 一般是为工作线程服务的, 当所有的用户线程结束, 守护线程自动结束
 * 3. 常见的守护线程: 垃圾回收机制
 */
public class ThreadMethod03 {
    public static void main(String[] args) throws InterruptedException {
        MyDaemonThread myDaemonThread = new MyDaemonThread();
        //如果我们希望当main线程结束后, 子线程自动结束
        //只需将子线程设为守护线程即可(调用setDaemon方法, 设置参数为true即可)
        myDaemonThread.setDaemon(true);
        myDaemonThread.start();

        for (int i = 1; i <= 10; i++) {
            System.out.println("宝强在辛苦的工作 " + i);
            Thread.sleep(1000);
        }
    }
}


class MyDaemonThread extends Thread {
    @Override
    public void run() {
        for (;;){
            try {
                Thread.sleep(1000);//休眠50毫秒
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("马蓉和宋喆快乐聊天, 哈哈哈");
        }
    }
}